package com.dilidili.service;

import com.domain.Video;
import com.github.pagehelper.PageInfo;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * @PackgeName: com.dilidili.service
 * @ClassName: IVideoService
 * @Author: 零
 * Date: 2022/4/9 10:39
 * project name: spring-cloud-mybilibli
 * @Version: 视频接口
 * @Description: 用户业务操作
 */
public interface IVideoService {

    /**
     * 查询用户发布视频总量
     * @param userId 用户id
     * @return
     */
    Integer playCounts(Integer userId);

    /**
     * 查询用户发布的视频
     * @param userId 用户id
     * @return
     */
    PageInfo<Map> queryUserId(Integer userId,Integer pageNum,Integer pageSize);


    /**
     * 查询用户视频分区下的视频数
     * @param userId 用户id
     * @return
     */
    List<Map<String,Object>> bigzoneByUserCount(Integer userId);


    /**
     * 查询用户视频
     * @param userId
     * @param bigzoneName
     * @param pageNum
     * @param pageSize
     * @return
     */
    PageInfo<Map> synthesizeQuery(Integer userId,String bigzoneName,Integer pageNum, Integer pageSize);


    /**
     * 查询用户视频根据播放量倒序
     * @param userId 用户id
     * @param bigzoneName 类型名称
     * @param pageNum 分页
     * @param pageSize
     * @return
     */
    PageInfo<Map> synthesizeQueryDesc(Integer userId,String bigzoneName,Integer pageNum, Integer pageSize);


    /**
     * 查询用户收藏的视频
     * @param userId 用户id
     * @param pageNum 分页
     * @param pageSize
     * @return
     */
    PageInfo<Map<String,Object>> collectvideoUserById(Integer userId,Integer pageNum, Integer pageSize);

    /**
     * 根据用户查询他的所有视频播放量总和
     * @param userId 用户id
     * @return
     */
    Integer videoIsreprintSum(Integer userId);

    /**
     *
     * @param userId
     * @param videoTitle
     * @param pageNum
     * @param pageSize
     * @return
     */
    PageInfo<Map<String,Object>> videoSold(Integer userId,String videoTitle,Integer pageNum, Integer pageSize);


    /**
     * 用户删除视频
     * @param videoId 视频id
     * @return 影响结果 1成功 0失败
     */
    Integer videoDelByVideoId(Integer videoId);

}
